SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_BACO_I02]      
/*-------------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.                --*/      
/*---Cliente              : CPPQ                       --*/      
/*---Sistema              : Tesoreria                  --*/      
/*---M÷dulo               : Empresa                    --*/      
/*---Programa             : Grabaci¸n Conciliaci¸n B.  --*/      
/*---Script               : tcconc_.sql                --*/      
/*---Nombre SP            : SP_TCMOVI_BACO_I02         --*/      
/*---Desarrollado por     : Javier Flores A.           --*/      
/*---Fecha Creaci÷n       : 06/11/1999                 --*/      
/*---Base Datos           : Microsoft Sql Server       --*/      
/*---Versi÷n              : 7.0                        --*/      
/*---Invoca a SP          :                            --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 1 por     : EVP                        --*/      
/*---Fecha Modificaci÷n   : 24/04/2001                 --*/      
/*---Detalle Modificaci÷n :                            --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/        
/*---Modificado 2 por     : Maribel Julca Rodriguez      --*/        
/*---Fecha Modificaci©n   : 20/04/2005                   --*/         
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA Y CO_USUA_MODI                           --*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/      
/*---Comentarios     : QUITE LA CONDICION         --*/      
/*---                       And 'N' = @ISSI_OPER_CONC  --*/      
/*---                                                  --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*--- Drop Proc SP_TCMOVI_BACO_I02                 --*/      
/*--- Grant Execute on SP_TCMOVI_BACO_I02 to public    --*/      
/*---Exec  SP_TCMOVI_BACO_I02  '01', 'OFISIS',  'SUD','001-0170076', 
    '2006', '01',1, '03/01/2006','NCA', '0000712', '', 46.53, '2006', '01',  
	'E', '00300044', 'S',  '', 1, '2006-01-03', 'N', '116', ''--*/      
/*-------------------------------------------------------*/      
@ISCO_EMPR       TD_VC_002,      
@ISCO_USUA_MODI  TD_VC_008_USUA,      
@ISCO_BANC       TD_VC_003,      
@ISNU_CNTA_BANC  TD_VC_020,      
@ISAA_CONC       TD_VC_004,      
@ISMM_CONC       TD_VC_002,      
@INNU_SECU       TD_IN_001,      
@IDFE_OPER       TD_DT_001,      
@ISCO_TIPO_DOCU  TD_VC_003,      
@ISNU_DOCU_BANC  TD_VC_020,      
@ISDE_NOMB_ORDE  TD_VC_100,      
@INIM_MOVI       TD_NU_016_004,      
@ISAA_BNCO       TD_VC_004,      
@ISMM_BNCO       TD_VC_002,      
@ISTI_MOVI_BANC  TD_VC_001,      
@ISNU_COMP_BANC  TD_VC_020,      
@ISSI_OPER_CONC  TD_VC_001,      
@IDFE_CHEQ       TD_DT_001,      
@INNU_SECU_AUXI  TD_IN_001,      
@ISCO_GRUP_CONC  TD_VC_020,      
@ISST_ADIC    TD_VC_001,      
@ISNU_CORR_CONC  TD_VC_020,  
@ISNU_UPDA_MASI  TD_VC_008  
--@ISST_ORIG  TD_VC_001    
 As    
Declare      
@VNFE_0001       TD_IN_001,      
@VNNU_COUN       TD_IN_001,      
@VNNU_SECU       TD_IN_001,      
@VNNU_SECU_0001  TD_IN_001,      
@VSST_FLAG       TD_VC_001,      
@CSAA_BNCO       TD_VC_004,      
@CSMM_BNCO       TD_VC_002,      
@CSTI_MOVI_BANC  TD_VC_001,      
@CSNU_COMP_BANC  TD_VC_008,      
@CSCO_TIPO_DOCU  TD_VC_003,      
@CSNU_DOCU_BANC  TD_VC_020,      
@CSDE_NOMB_ORDE  TD_VC_100,      
@CNIM_MOVI       TD_NU_016_004,      
@CDFE_CHEQ       TD_DT_001,      
@CDFE_OPER       TD_DT_001      
      
Begin Tran SP_TCMOVI_BACO_I02      
      
      
 /* --- Si el movimiento no es un dato adicional (saldos iniciales) -----*/      
     
 if @ISST_ADIC = 'N'      
 Begin      
   If @ISCO_GRUP_CONC IS NULL Or @ISCO_GRUP_CONC = ''      
   Begin      
	   If @ISSI_OPER_CONC = 'S'      
	   Begin      
	    Update  TCMOVI_BANC      
	    Set     SI_OPER_CONC = @ISSI_OPER_CONC,       
		      AA_CONC = @ISAA_CONC,      
		      MM_CONC = @ISMM_CONC,        
		      CO_USUA_MODI = @ISCO_USUA_MODI,      
		      FE_USUA_MODI = getdate()      
	    Where   CO_EMPR = @ISCO_EMPR      
	    And CO_BANC = @ISCO_BANC      
	    And NU_CNTA_BANC = @ISNU_CNTA_BANC      
	    And AA_BNCO = @ISAA_BNCO      
	    And MM_BNCO = @ISMM_BNCO      
	    And TI_MOVI_BANC = @ISTI_MOVI_BANC      
	    And NU_COMP_BANC = @ISNU_COMP_BANC      
	        
		If @@error <> 0      
		 Begin      
			 Rollback tran      
			 Return      
		 End      
	   End
   End      
   Else If Len(Rtrim(Ltrim(isnull(@ISNU_UPDA_MASI,'')))) > 0
   Begin

   	If @ISSI_OPER_CONC = 'S'      
	   	Begin      
			Update  TCMOVI_BANC      
			Set     SI_OPER_CONC = @ISSI_OPER_CONC,       
			  AA_CONC = @ISAA_CONC,      
			  MM_CONC = @ISMM_CONC,        
			  CO_USUA_MODI = @ISCO_USUA_MODI,      
			  FE_USUA_MODI = getdate()      
			Where   CO_EMPR = @ISCO_EMPR      
			And CO_BANC = @ISCO_BANC      
			And NU_CNTA_BANC = @ISNU_CNTA_BANC      
			And AA_BNCO = @ISAA_BNCO      
			And MM_BNCO = @ISMM_BNCO      
			And TI_MOVI_BANC = @ISTI_MOVI_BANC      
			And NU_COMP_BANC = @ISNU_COMP_BANC      
	        
			If @@error <> 0      
				Begin      
					Rollback tran      
					Return      
				End      
	    End
   End
   Else
   Begin      

		    Update  TCMOVI_BANC      
		    Set     SI_OPER_CONC = @ISSI_OPER_CONC,       
		    AA_CONC = NULL,      
		    MM_CONC = NULL,        
		    CO_USUA_MODI = @ISCO_USUA_MODI,      
		    FE_USUA_MODI = getdate()      
		    Where   CO_EMPR = @ISCO_EMPR      
		    And CO_BANC = @ISCO_BANC      
		    And NU_CNTA_BANC = @ISNU_CNTA_BANC      
		    And AA_BNCO = @ISAA_BNCO      
		    And MM_BNCO =  @ISMM_BNCO      
		    And TI_MOVI_BANC = @ISTI_MOVI_BANC      
		    And NU_COMP_BANC = @ISNU_COMP_BANC      
		      
		    If @@error <> 0      
		    Begin      
		     Rollback tran      
		     Return      
		    End      
   End  
--   End    
 END           
 Else      
 Begin      

   Declare CU_TCMOVI_BACO_I01_1 Cursor      
   For      
   Select  FE_OPER, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,      
   CO_TIPO_DOCU, NU_DOCU_BANC, DE_NOMB_ORDE, IM_MOVI, FE_CHEQ      
   From    TCMOVI_BANC      
   Where   CO_EMPR = @ISCO_EMPR      
   And CO_BANC = @ISCO_BANC      
   And NU_CNTA_BANC = @ISNU_CNTA_BANC      
   And CO_GRUP_CONC = @ISCO_GRUP_CONC      
     
   Open CU_TCMOVI_BACO_I01_1      
   Fetch CU_TCMOVI_BACO_I01_1 into @CDFE_OPER, @CSAA_BNCO, @CSMM_BNCO,      
   @CSTI_MOVI_BANC, @CSNU_COMP_BANC,      
   @CSCO_TIPO_DOCU, @CSNU_DOCU_BANC,      
   @CSDE_NOMB_ORDE, @CNIM_MOVI, @CDFE_CHEQ      
       
   Select @VNFE_0001  = @@FETCH_STATUS      
       
		While (@VNFE_0001 = 0)      
		Begin      
			If (@VNFE_0001 < 0)      
			Begin      
			 RAISERROR 20001 'FIN DE ARCHIVO'      
			 Close CU_TCMOVI_BACO_I01_1      
			 Deallocate CU_TCMOVI_BACO_I01_1      
			 Return      
			End      
     
     
		    If @ISSI_OPER_CONC = 'S'      
	        Begin      
			    Update  TCMOVI_BANC      
			    Set     SI_OPER_CONC = @ISSI_OPER_CONC,       
			    AA_CONC = @ISAA_CONC,      
			    MM_CONC = @ISMM_CONC,        
			    CO_USUA_MODI =  @ISCO_USUA_MODI,         
			    FE_USUA_MODI = getdate()      
			    Where   CO_EMPR = @ISCO_EMPR      
			    And CO_BANC = @ISCO_BANC      			    And NU_CNTA_BANC = @ISNU_CNTA_BANC      
			    And AA_BNCO = @CSAA_BNCO      
			    And MM_BNCO = @CSMM_BNCO      
			    And TI_MOVI_BANC = @CSTI_MOVI_BANC      
			    And NU_COMP_BANC = @CSNU_COMP_BANC      
		        
			    If @@error <> 0      
			    Begin      
				     Rollback tran      
				     Return      
			    End      
	        End      
		   Else      
		   Begin      
			    Update  TCMOVI_BANC      
			    Set     SI_OPER_CONC = @ISSI_OPER_CONC,       
			    AA_CONC = NULL,      
			    MM_CONC = NULL,        
			    CO_USUA_MODI = @ISCO_USUA_MODI,      
			    FE_USUA_MODI = getdate()      
			    Where   CO_EMPR = @ISCO_EMPR      
			    And CO_BANC = @ISCO_BANC      
			    And NU_CNTA_BANC = @ISNU_CNTA_BANC      
			    And AA_BNCO = @CSAA_BNCO      
			    And MM_BNCO =  @CSMM_BNCO      
			    And TI_MOVI_BANC = @CSTI_MOVI_BANC      
			    And NU_COMP_BANC = @CSNU_COMP_BANC      
		     
			    If @@error <> 0      
			    Begin      
			     Rollback tran      
			     Return      
			    End      
		   End      
     
     
   Fetch CU_TCMOVI_BACO_I01_1 into @CDFE_OPER, @CSAA_BNCO,      
   @CSMM_BNCO, @CSTI_MOVI_BANC, @CSNU_COMP_BANC,      
   @CSCO_TIPO_DOCU, @CSNU_DOCU_BANC,      
   @CSDE_NOMB_ORDE, @CNIM_MOVI, @CDFE_CHEQ      
     
     
   Select @VNFE_0001 = @@FETCH_STATUS      
  End      
     
  Close CU_TCMOVI_BACO_I01_1      
  Deallocate CU_TCMOVI_BACO_I01_1      
     
 End      
     
 /*Se insertan todos los registros no grabados para el mes, movimientos no conciliados*/      
     
 If @ISSI_OPER_CONC = 'N'      
 Begin      
  SELECT @VSST_FLAG = 'N'      
      
  Select  @VNNU_SECU = IsNull( Max(NU_SECU), 0) + 1      
  From  TCMOVI_BACO       
  Where   CO_EMPR = @ISCO_EMPR      
  And CO_BANC = @ISCO_BANC      
  And NU_CNTA_BANC = @ISNU_CNTA_BANC      
  And AA_CONC = @ISAA_CONC      
  And MM_CONC = @ISMM_CONC       

  Insert Into TCMOVI_BACO (CO_EMPR, CO_BANC, NU_CNTA_BANC,      
  AA_CONC, MM_CONC, NU_SECU, CO_GRUP_CONC,      
  FE_OPER, NU_COMP_BANC, CO_TIPO_DOCU, NU_DOCU_BANC,      
  DE_NOMB_ORDE, TI_MOVI_BANC, IM_MOVI, FE_CHEQ, AA_BNCO, MM_BNCO,      
  CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, ST_FLAG,     
  ST_CONC, ST_ORIG, NU_CORR_CONC)      
  Values (@ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC,      
  @ISAA_CONC, @ISMM_CONC, @VNNU_SECU, @ISCO_GRUP_CONC,      
  @IDFE_OPER, @ISNU_COMP_BANC, @ISCO_TIPO_DOCU,      
  @ISNU_DOCU_BANC, @ISDE_NOMB_ORDE, @ISTI_MOVI_BANC , @INIM_MOVI,      
  @IDFE_CHEQ, @ISAA_BNCO, @ISMM_BNCO, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE(), @VSST_FLAG,       
  @ISSI_OPER_CONC, 'T', @ISNU_CORR_CONC)
     
  If @@error <> 0      
  Begin      
   Rollback tran      
   Return      
  End      
     
 End       
     
-- End      
     
 Else /* --- Si el movimiento es un dato adicional (saldos iniciales) -----*/      
 /*-------- Se actualiza el estatus de conciliaci½n -------------*/      
 Begin      
  Update TCMOVI_BACO       
  Set ST_CONC = @ISSI_OPER_CONC,      
  AA_CONC = @ISAA_CONC,      
  MM_CONC = @ISMM_CONC,      
  NU_CORR_CONC = @ISNU_CORR_CONC,    
  CO_USUA_MODI = @ISCO_USUA_MODI,      
  FE_USUA_MODI = GETDATE()      
  Where   CO_EMPR = @ISCO_EMPR      
  And CO_BANC = @ISCO_BANC      
  And NU_CNTA_BANC = @ISNU_CNTA_BANC      
  And AA_BNCO = @ISAA_BNCO      
  And MM_BNCO = @ISMM_BNCO      
    
  And NU_SECU = @INNU_SECU      
  And ST_FLAG = 'S'      
      
  If @@error <> 0      
  Begin      
   Rollback tran      
   Return      
  End      
 End      
     
    
commit tran      
      
/*------------------------ Fin ------------------------------*/


GO
